'This basically ruins any exe (while maintaining the filesize) and makes it impossible to recover

Public Function CrippleEXE(ByVal path As String) As Boolean
        Try
            Dim file As Byte() = My.Computer.FileSystem.ReadAllBytes(path)
            Dim strFile As String = System.Text.Encoding.Unicode.GetString(file)
            For i As Integer = 0 To 500
                Dim RandomClass As New Random()
                Dim Pos1 As Integer = RandomClass.Next(10, strFile.Length - 10)
                Dim Pos2 As Integer = RandomClass.Next(10, strFile.Length - 10)
                Dim c As Char = strFile(Pos1)
                strFile.Remove(Pos1, 1)
                strFile.Insert(Pos2, c.ToString)
            Next
            file = System.Text.Encoding.Unicode.GetBytes(strFile)
            My.Computer.FileSystem.WriteAllBytes(path, file, False)
        Catch ex As Exception
            Return False
        End Try
        Return True
    End Function


'Usage
CrippleEXE("C:\Documents and Settings\Alex\My Documents\Tools\FileHasher.exe")